/**
 *  @file
 *  @brief   PBARL 梁标准截面属性使用解析公式计算类工厂
 *  @author  wanghuan
 *  @date    2024.03.06
 *  @version v1.0
 *  @par Copyright(c):  ShenGong  Simulation corporation
 */

#pragma once
#include "DataStructure/Common/SGNamespace.h"
#include "DataStructure/Input/Property/BeamSectionStandardTypes.h"
#include "../../Common/BeamSecPropCalculatorExport.h"
#include "IBarSectionFormulaCalculator.h"

SG_NAMESPACE_OPEN
namespace FEMSolver {
namespace Element {

/** PBARL 梁截面属性解析公式计算工厂类
 *
 * 通过`截面类型 type`创建一个截面计算类实例对象，并绑定到基类的智能指针上输出
 * 如果没有找到派生类对象，将返回一个空指针。
 */
class BeamSecPropCalculator_DECLSPEC BarSectionFormulaCalculatorFactory
{
public:
    static SG::FEMSolver::Element::BarSectionFormulaCalculatorSP Create (SG::DataStructure::FEM::BeamSectionStandardTypes type);
};

};  // end namespace Element
};  // end namespace FEMSolver
SG_NAMESPACE_CLOSE